/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.itschapala.dsw2.vista;

import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import mx.itschapala.dsw2.biblioteca8a.bl.LibroBlLocal;
import mx.itschapala.dsw2.biblioteca8a.bl.PrestamoBlLocal;
import mx.itschapala.dsw2.biblioteca8a.bl.UsuarioBlLocal;
import mx.itschapala.dsw2.biblioteca8a.modelo.Libro;
import mx.itschapala.dsw2.biblioteca8a.modelo.Prestamo;
import mx.itschapala.dsw2.biblioteca8a.modelo.Usuario;

/**
 *
 * @author Dhavid
 */
@ManagedBean
@SessionScoped
public class PrestarBean {

    @EJB
    private PrestamoBlLocal prestamoBl1;
    //---------------EJB'S-------------------------
    @EJB
    private PrestamoBlLocal prestamoBl;
    @EJB
    private UsuarioBlLocal usuarioBl;
    @EJB
    private LibroBlLocal libroBl;
    //------------------variables(propiedades)--------------
    private List<Libro> listaLibro;
    private List<Prestamo> lprestamo;
    private List<Usuario> listaUsuario;
    private Prestamo prestamo;
    private Usuario usuario;
    private String accion;
    private String codigoLibro;
    private int usuarioSeleccionado;
    private int idUsuarioSeleccionado;
//-----------constructor--------------------------------

    public PrestarBean() {
        listaUsuario = new ArrayList<Usuario>();

        listaLibro = new ArrayList<Libro>();
        prestamo = new Prestamo();
    }
    //-----------metodos GET y SET--------------------------------    

    public Prestamo getLoan() {
        return prestamo;
    }

    public void setLoan(Prestamo loan) {
        this.prestamo = loan;
    }

    public List<Libro> getLibrosLista() {
        return listaLibro;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public String getCodigoLibro() {
        return codigoLibro;
    }

    public void setCodigoLibro(String codigoLibro) {
        this.codigoLibro = codigoLibro;
    }

    public int getUsuarioSeleccionado() {
        return usuarioSeleccionado;
    }

    public void setUsuarioSeleccionado(int usuarioSeleccionado) {
        this.usuarioSeleccionado = usuarioSeleccionado;
    }

    public List<Prestamo> getLprestamo() {
        lprestamo = prestamoBl.getAll();
        return lprestamo;
    }

    public List<Usuario> getListaUsuario() {
        listaUsuario = usuarioBl.getAll();
        return listaUsuario;
    }

    public List<Libro> getListaLibro() {
        return listaLibro;
    }

    public void setListaLibro(List<Libro> listaLibro) {
        this.listaLibro = listaLibro;
    }

    public int getIdUsuarioSeleccionado() {
        return idUsuarioSeleccionado;
    }

    public void setIdUsuarioSeleccionado(int idUsuarioSeleccionado) {
        this.idUsuarioSeleccionado = idUsuarioSeleccionado;
    }

    //-----------Acciones--------------------------------    
    public String procesarAccion() {
        if (accion.equalsIgnoreCase("Nuevo")) {
            prestamoBl.lendBooks(null, listaLibro);
        }
        if (accion.equalsIgnoreCase("Editar")) {
        }
        accion = "";
        return "PrestamoLista";        
    }

    //-----------Listeners--------------------------------    
    public void prepararNuevo(ActionEvent evt) {//accionEvent de faces
        prestamo = new Prestamo();
        accion = "Nuevo";
    }

    public void prepararEditar(ActionEvent evt) {
        System.out.println(evt.getComponent().getClientId());
        String arr[] = evt.getComponent().getClientId().split(":");
        String num = arr[3];
        int index = Integer.parseInt(num);
        System.out.println("el numero es: " + index);
        // loan=lista.get(index);
        accion = "Editar";
    }

    public void prepararEliminar(ActionEvent evt) {
        String arr[] = evt.getComponent().getClientId().split(":");
        String num = arr[3];
        int index = Integer.parseInt(num);
        System.out.println("el numero es: " + index);
        //loan=lista.get(index);
        accion = "Eliminar";
    }

    public void eliminar(ActionEvent evt) {
        String arr[] = evt.getComponent().getClientId().split(":");
        String num = arr[2];
        int index = Integer.parseInt(num);
        System.out.println("el numero es: " + index);
        listaLibro.remove(index);
    }

    public void agregarLibro(ActionEvent evt) {
        Libro book = libroBl.findByClaveforLend(codigoLibro);
        if (book != null) {
            listaLibro.add(book);
        }
    }
    public void procesarSeleccion(ActionEvent evt){
        prestamo.setIdusuario(usuarioBl.findById(idUsuarioSeleccionado));
    }
//    public void prepararNuevo(){
//        prestamo=new Prestamo();
//        listaLibro=new ArrayList<Libro>();
//    }
}